home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / yam_i_dodatki / yamserv / yamserv.rexx < prev   
OS/2 REXX Batch file  |  1996-09-25  |  5KB  |  202 lines

  1. /* YAMServ. ARexx mail file server for YAM.
  2. ** © 1996 Juan Jesús García de Soria Lucena.
  3. ** $VER: YAMServ 1.1 (25.9.96)
  4. */
  5.  
  6. OPTIONS RESULTS
  7.  
  8. PARSE ARG REQ
  9.  
  10. ADDRESS YAM
  11.  
  12. YAMServFolder=-1
  13. i=0
  14.  
  15. DO WHILE YAMServFolder=-1
  16.     setfolder i
  17.     IF RC>0 THEN DO
  18.         YAMServFolder=-2
  19.         END
  20.     ELSE DO
  21.         getfolderinfo name
  22.         IF RESULT="YAMServ" THEN DO
  23.             YAMServFolder=i
  24.             END
  25.         i=i+1
  26.         END
  27.     END
  28.  
  29. IF YAMServFolder<0 THEN DO
  30.     SAY "YAMServ folder couldn't be found."
  31.     EXIT
  32.     END
  33.     
  34. setfolder YAMServFolder
  35.  
  36. getfolderinfo max
  37. num=RESULT
  38. flag=0
  39. i=0
  40. DO WHILE i<num
  41.     setmail i
  42.     getmailinfo status
  43.     St=RESULT
  44.     IF St~='R' THEN DO
  45.         flag=1
  46.         getmailinfo subject
  47.         Subj=UPPER(RESULT)
  48.         PARSE VAR Subj Comm Pattern
  49.         Pattern=STRIP(Pattern)
  50.         IF Comm="+HELP" THEN DO
  51.             ADDRESS COMMAND 'Echo "YAMServ 1.1 (C) 1996 Juan Jesus Garcia de Soria Lucena." >T:YAMServ'
  52.             ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  53.             ADDRESS COMMAND 'Echo "YAMServ HELP Page. Send these commands in your mail _subject_." >>T:YAMServ'
  54.             ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  55.             ADDRESS COMMAND 'Echo " +HELP .......... This info." >>T:YAMServ'
  56.             ADDRESS COMMAND 'Echo " +LIST .......... Get list of available files." >>T:YAMServ'
  57.             ADDRESS COMMAND 'Echo " +GET pattern ... Get specified file(s) as MIME (Amiga wildcards allowed)." >>T:YAMServ'
  58.             ADDRESS COMMAND 'Echo " +GETUU pattern . Get specified file(s) as UUEncode (Amiga wildcards allowed)." >>T:YAMServ'
  59.             mailreply
  60.             writeletter "T:YAMServ"
  61.             writequeue
  62.             ADDRESS COMMAND 'Delete T:YAMServ quiet'
  63.             END
  64.         ELSE IF Comm="+LIST" THEN DO
  65.             ADDRESS COMMAND 'Echo "YAMServ 1.1 (C) 1996 Juan Jesus Garcia de Soria Lucena." >T:YAMServ'
  66.             ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  67.             ADDRESS COMMAND 'Echo "These are the files currently available:" >>T:YAMServ'
  68.             ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  69.             ADDRESS COMMAND 'LIST YAMServ: NOHEAD FILES >>T:YAMServ'
  70.             mailreply
  71.             writeletter "T:YAMServ"
  72.             writequeue
  73.             ADDRESS COMMAND 'Delete T:YAMServ quiet'
  74.             END
  75.         ELSE IF Comm="+GET" THEN DO
  76.             ADDRESS COMMAND 'Echo "YAMServ 1.1 (C) 1996 Juan Jesus Garcia de Soria Lucena." >T:YAMServ'
  77.             ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  78.             ADDRESS COMMAND 'Echo "Your request has been processed." >>T:YAMServ'
  79.             mailreply
  80.             writeletter "T:YAMServ"
  81.             ADDRESS COMMAND 'LIST "YAMServ:'Pattern'" QUICK NOHEAD >T:YAMServ'
  82.             SAY 'LIST "YAMServ:'Pattern'" QUICK NOHEAD >T:YAMServ'
  83.             IF OPEN('file',"T:YAMServ",'R') THEN DO
  84.                 DO WHILE ~EOF('file')
  85.                     fname=READLN('file')
  86.                     'writeattach FILENAME "YAMServ:'fname'" DESC "YAMServ attachment" ENCMODE MIME'
  87.                     END
  88.                 CALL CLOSE('file')
  89.                 END
  90.             ELSE DO
  91.                 ADDRESS COMMAND 'Echo "YAMServ 1.1 (C) 1996 Juan Jesus Garcia de Soria Lucena." >T:YAMServ'
  92.                 ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  93.                 ADDRESS COMMAND 'Echo "Your request couldn''t be processed because of a server error." >>T:YAMServ'
  94.                 writeletter "T:YAMServ"
  95.                 END
  96.             writequeue
  97.             ADDRESS COMMAND 'Delete T:YAMServ quiet'
  98.             END
  99.         ELSE IF Comm="+GETUU" THEN DO
  100.             ADDRESS COMMAND 'Echo "YAMServ 1.1 (C) 1996 Juan Jesus Garcia de Soria Lucena." >T:YAMServ'
  101.             ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  102.             ADDRESS COMMAND 'Echo "Your request has been processed." >>T:YAMServ'
  103.             mailreply
  104.             writeletter "T:YAMServ"
  105.             ADDRESS COMMAND 'LIST "YAMServ:'Pattern'" QUICK NOHEAD >T:YAMServ'
  106.             SAY 'LIST "YAMServ:'Pattern'" QUICK NOHEAD >T:YAMServ'
  107.             IF OPEN('file',"T:YAMServ",'R') THEN DO
  108.                 DO WHILE ~EOF('file')
  109.                     fname=READLN('file')
  110.                     'writeattach FILENAME "YAMServ:'fname'" DESC "YAMServ attachment" ENCMODE UU'
  111.                     END
  112.                 CALL CLOSE('file')
  113.                 END
  114.             ELSE DO
  115.                 ADDRESS COMMAND 'Echo "YAMServ 1.1 (C) 1996 Juan Jesus Garcia de Soria Lucena." >T:YAMServ'
  116.                 ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  117.                 ADDRESS COMMAND 'Echo "Your request couldn''t be processed because of a server error." >>T:YAMServ'
  118.                 writeletter "T:YAMServ"
  119.                 END
  120.             writequeue
  121.             ADDRESS COMMAND 'Delete T:YAMServ quiet'
  122.             END
  123.         ELSE DO
  124.             ADDRESS COMMAND 'Echo "YAMServ 1.1 (C) 1996 Juan Jesus Garcia de Soria Lucena." >T:YAMServ'
  125.             ADDRESS COMMAND 'Echo "" >>T:YAMServ'
  126.             ADDRESS COMMAND 'Echo "Your command was not understood. Send +HELP as _subject_ for help." >>T:YAMServ'
  127.             mailreply
  128.             writeletter "T:YAMServ"
  129.             writequeue
  130.             ADDRESS COMMAND 'Delete T:YAMServ quiet'
  131.             END
  132.         maildelete
  133.         getfolderinfo max
  134.         if RESULT<num THEN DO
  135.             i=0
  136.             END
  137.         ELSE DO
  138.             i=i+1
  139.             END
  140.         END
  141.     ELSE DO
  142.         i=i+1
  143.         END
  144.         
  145.     getfolderinfo max
  146.     num=RESULT
  147.     END
  148.     
  149. IF flag=1 THEN DO
  150.     setfolder 1
  151.     getfolderinfo max
  152.     num=RESULT
  153.     i=0
  154.     DO WHILE i<num
  155.         setmail i
  156.         getmailinfo subject
  157.         Subj=UPPER(LEFT(RESULT,5))
  158.         IF Subj="RE: +" THEN DO
  159.             mailsend
  160.             getfolderinfo max
  161.             if RESULT<num THEN DO
  162.                 i=0
  163.                 END
  164.             ELSE DO
  165.                 i=i+1
  166.                 END
  167.             END
  168.         ELSE DO
  169.             i=i+1
  170.             END
  171.         getfolderinfo max
  172.         num=RESULT
  173.         END
  174.     setfolder 2
  175.     getfolderinfo max
  176.     num=RESULT
  177.     i=0
  178.     DO WHILE i<num
  179.         setmail i
  180.         getmailinfo subject
  181.         Subj=UPPER(LEFT(RESULT,5))
  182.         IF Subj="RE: +" THEN DO
  183.             maildelete
  184.             getfolderinfo max
  185.             if RESULT<num THEN DO
  186.                 i=0
  187.                 END
  188.             ELSE DO
  189.                 i=i+1
  190.                 END
  191.             END
  192.         ELSE DO
  193.             i=i+1
  194.             END
  195.         getfolderinfo max
  196.         num=RESULT
  197.         END
  198.     END
  199.     
  200. IF REQ=REQ THEN DO
  201.     ADDRESS COMMAND 'RequestChoice "YAMServ notice" "New mail has been processed." "Ok"'
  202.     END